目前要先跳到這邊介紹是因為當我們一開始在架設環境,處理到資料庫這邊時,如果已存在的架構不大,又有schema的話,可以幫助我們快速在環境中把table的架構設定好。
database/migrations
Step1: 下指令產生migration檔案 php artisan make:migration create_product_table --create=product
Step2: 產生migration 檔案,
範例: 2018_10_22_104737_create_product_table.php
說明:下指令的時間+動作+table名稱.php
不建議跳過step1直接手動建立這個檔案,因為它產生的file會帶有時間
Step3: 打開檔案編輯table (細節說明在下一章)
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateProductTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('products');
}
}
如果說已經跑過 php artisan migrate
之後要修改已經create的檔案有兩種方式
範例:
方法1: 下指令php artisan make:migration add_nickname_to_products_table --table=products
方法2: 直接改migration檔案
如果還沒倒資料或是直接更改不會影響現有資料,則可以直接修改檔案,但是要記得migration table 要rollback 或是清掉重來,不然不會更新
php artisan migrate
: 執行所有未完成的遷移(是參考migration table裡面的紀錄)
php artisan migrate:rollback
: 還原migration 操作
php artisan migrate:reset
: 還原所有遷移
php artisan migrate:refresh
: 還原所有遷移,並再執行一次migrate
php artisan migrate:fresh
: 刪掉所有資料庫的table(包含migration table),並再執行一次migrate